import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;

/**
 * 数据查询类
 ******************************************
 * @author HuangFeng  [2017年9月30日 上午10:36:59]
 * @version 1.0
 ******************************************
 */
public class Dao extends QueryRunner{
	
	/**
	 * 构造函数
	 ******************************************
	 * @author HuangFeng [2017年9月30日 上午10:43:36]
	 * @version 1.0
	 ******************************************
	 */
	public Dao() {}
	
	/**
	 * 查询所有项目组信息
	 ******************************************
	 * @author HuangFeng [2017年10月29日 下午9:06:50]
	 * @version 1.0
	 ******************************************
	 * @return 集合
	 */
	public List<ZhiWei> queryAllZhiWei(){
		List<ZhiWei> result = null;
		try {
			Connection con = JdbcUtil.getConnection();
			String sql = "select * from zhiwei";
			result = query(con,sql, new BeanListHandler<ZhiWei>(ZhiWei.class));
			JdbcUtil.releaseConnection(con);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return result;
	}

	/**
	 * 保存数据
	 ******************************************
	 * @author HuangFeng [2017年11月6日 下午5:26:25]
	 * @version 1.0
	 ******************************************
	 * @param results
	 */
	public void saveResult(List<Result> results) {
		try {
			Connection con = JdbcUtil.getConnection();
			String sql = "insert into result(zhiweihao,bumenhao,passnum,waitnum) values(?,?,?,?)";  
	        Object[][] param= new Object[results.size()][4];  
	        for(int i=0; i<results.size(); i++){  
	            param[i]= new Object[4];  
	            param[i][0] = results.get(i).getZhiweihao();
	            param[i][1] = results.get(i).getBumenhao();
	            param[i][2] = results.get(i).getPassnum();
	            param[i][3] = results.get(i).getWaitnum();
	        }
	        batch(con ,sql, param);  
			JdbcUtil.releaseConnection(con);
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 删除表
	 ******************************************
	 * @author HuangFeng [2017年11月14日 下午1:20:48]
	 * @version 1.0
	 ******************************************
	 */
	public void deleteResult(){
		try {
			Connection con = JdbcUtil.getConnection();
			String sql = "DROP TABLE IF EXISTS result";  
			update(con,sql);
			sql = "CREATE TABLE `result` ("
					+ "`zhiweihao` varchar(255) DEFAULT NULL,"
					+ "`bumenhao` varchar(255) DEFAULT NULL,"
					+ "`passnum` int(11) DEFAULT NULL,"
					+ "`waitnum` int(11) DEFAULT NULL)";  
			update(con,sql);
			JdbcUtil.releaseConnection(con);
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	/**
	 * 更新通过人数
	 ******************************************
	 * @author HuangFeng [2017年11月6日 下午5:53:28]
	 * @version 1.0
	 ******************************************
	 */
	public void updatePassNum() {
		try {
			Connection con = JdbcUtil.getConnection();
			String sql = "update gangweibiao g,result r "
					+ "set g.`已通过人数` = r.passnum,g.`待审查人数` = r.waitnum "
					+ "where g.`职位代码` = r.zhiweihao and g.`部门代码` = r.bumenhao";
			update(con,sql);
			JdbcUtil.releaseConnection(con);
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}
